Bump tags for Tecnalia models, fix incorrect scaling and improve documentation#10
Bump tags for Tecnalia models, fix incorrect scaling and improve documentation#10
Conversation
magnuask
left a comment
There was a problem hiding this comment.
The structure is better with these additions. I left a number of inline comments with suggested fixes and clarifications (mainly related to a few inconsistencies, minor errors, and some places where the wording could be clearer).
| The [`MultipleBuildingTypes`](@ref) node creates sinks for all demand resources with penalties for both surplus and deficit. | ||
| The implementation uses `Dict` structures for the fields `cap`, `penalty_surplus`, and `penalty_deficit` to facilitate multiple [Resource](@extref EnergyModelsBase.Resource)s. | ||
| This approach allows modeling building demands with flexible penalty mechanisms for over- and under-supply. | ||
| The type is also used to enable specialized constructors that samples the [`Tecnalia_Building-Stock-Energy-Model`](https://github.com/iDesignRES/Tecnalia_Building-Stock-Energy-Model) module. |
There was a problem hiding this comment.
“constructors that samples” → “constructors that sample”
docs/src/nodes/pvandcsp.md
Outdated
|
|
||
| PV and CSP source generate, respectively, electricity and heat from solar power. | ||
| The implementation of the node is similar to that of [NonDisRES](@extref EnergyModelsRenewableProducers nodes-nondisres) but uses `Dict` structures for the fields `cap`, `profile`, `opex_var` and `opex_fixed` to facilitate multiple [Resource](@extref EnergyModelsBase.Resource)s (both electricity and heat outputs). | ||
| The type is also used to enable specialized constructors that samples the [Tecnalia_Solar-Energy-Model](https://github.com/iDesignRES/Tecnalia_Solar-Energy-Model) module. |
There was a problem hiding this comment.
“constructors that samples” → “constructors that sample”
docs/src/nodes/windpower.md
Outdated
| # [Wind power source node](@id nodes-WindPower) | ||
|
|
||
| Wind power source generate electricity from wind sources. | ||
| The implementation of the node is identical to that of [NonDisRES](@extref EnergyModelsRenewableProducers nodes-nondisres) and is here used to enable specialized constructors that samples the [`wind_power_timeseries`](https://gitlab.sintef.no/harald.svendsen/wind_power_timeseries) module. |
There was a problem hiding this comment.
“constructors that samples” → “constructors that sample”
docs/src/how-to/utilize.md
Outdated
|
|
||
| The nodes [`WindPower`](@ref WindPower), [`CSPandPV`](@ref CSPandPV) and [`MultipleBuildingTypes`](@ref MultipleBuildingTypes) have [constructors](@ref lib-pub-sampling_constructors) that samples [`wind_power_timeseries`](https://gitlab.sintef.no/harald.svendsen/wind_power_timeseries), [`Tecnalia_Solar-Energy-Model`](https://github.com/iDesignRES/Tecnalia_Solar-Energy-Model) and [`Tecnalia_Building-Stock-Energy-Model`](https://github.com/iDesignRES/Tecnalia_Building-Stock-Energy-Model), respectively. These modules are python based and the usage of these [constructors](@ref lib-pub-sampling_constructors) requires installation of these as documented [below](@ref how_to-utilize-use_nodes-python_modules). | ||
|
|
||
| Additionally, the node [`BioCHP`](@ref BioCHP) have a [constructor](@ref lib-pub-sampling_constructors) that samples the [CHP_modelling](https://github.com/iDesignRES/CHP_modelling) module. This module is `C++` based and the [constructor](@ref lib-pub-sampling_constructors) then requires compilation and build before usage as described further [below](@ref how_to-utilize-use_nodes-cpp_modules). |
There was a problem hiding this comment.
have a constructor” → “has a constructor”
| All values have to be non-negative. | ||
| - **`penalty_surplus::Dict{<:Resource,<:TimeProfile}`**:\ | ||
| The penalties applied for surplus (over-supply) for each of the input resources. | ||
| These penalties affect the variable operational expenses. |
There was a problem hiding this comment.
“These penalties affect the variable operational expenses.” → “These penalties are added to the variable operational cost.”
There was a problem hiding this comment.
Changed, but kept expenses (as we use OPEX).
docs/src/nodes/pvandcsp.md
Outdated
| @@ -0,0 +1,154 @@ | |||
| # [PV and CSV source node](@id nodes-CSPandPV) | |||
There was a problem hiding this comment.
should be “PV and CSP source node”
There was a problem hiding this comment.
It is not entirely clear whether this node represents a combined PV + CSP system, or a generic multi-resource solar source
There was a problem hiding this comment.
It is in practice a combined PV+CSP system if the constructor for the model from Tecnalia is used. I updated the documentation.
docs/src/nodes/pvandcsp.md
Outdated
| - [``\texttt{cap\_inst}``](@extref EnergyModelsBase man-opt_var-cap) | ||
| - [``\texttt{flow\_out}``](@extref EnergyModelsBase man-opt_var-flow) | ||
| - [``\texttt{emissions\_node}``](@extref EnergyModelsBase man-opt_var-emissions) if `EmissionsData` is added to the field `data`. | ||
| - [``\texttt{curtailment}[n, t]``](@extref EnergyModelsRenewableProducers nodes-nondisres-math-add): For [`CSPandPV`](@ref), this variable is the sum of curtailed capacity of source ``n`` in operational period ``t``.\ |
There was a problem hiding this comment.
“curtailed capacity” is misleading. Curtailment usually refers to unused generation (energy) rather than capacity.
docs/src/nodes/windpower.md
Outdated
| @@ -0,0 +1,161 @@ | |||
| # [Wind power source node](@id nodes-WindPower) | |||
|
|
|||
| Wind power source generate electricity from wind sources. | |||
There was a problem hiding this comment.
Consider simplifying to “Wind power sources generate electricity from wind.”
docs/src/nodes/windpower.md
Outdated
| - [``\texttt{cap\_inst}``](@extref EnergyModelsBase man-opt_var-cap) | ||
| - [``\texttt{flow\_out}``](@extref EnergyModelsBase man-opt_var-flow) | ||
| - [``\texttt{emissions\_node}``](@extref EnergyModelsBase man-opt_var-emissions) if `EmissionsData` is added to the field `data`. | ||
| - [``\texttt{curtailment}[n, t]``](@extref EnergyModelsRenewableProducers nodes-nondisres-math-add): Curtailed capacity of source ``n`` in operational period ``t`` with a typical unit of MW.\ |
There was a problem hiding this comment.
Curtailment usually refers to unused generation (energy/output) rather than capacity.
There was a problem hiding this comment.
While I agree with this, I would leave it to another PR.
docs/src/nodes/biochp.md
Outdated
| To use the [constructor](@ref lib-pub-sampling_constructors) that samples the [CHP_modelling](https://github.com/iDesignRES/CHP_modelling) module, follow the installation in the [Use nodes](@ref how_to-utilize-use_nodes) section. | ||
|
|
||
| The `BioCHP` utilizes linear, time-independent conversion rates from the `input` [`Resource`](@extref EnergyModelsBase.Resource)s to the `output` [`Resource`](@extref EnergyModelsBase.Resource)s, subject to the available capacity. | ||
| The capacity is normalized such that a conversion value of 1 corresponds to the nominal capacity in the fields `input` and `output`. |
There was a problem hiding this comment.
I removed it, as it is the same as it is the case for the standard EMB nodes.
docs/src/nodes/biochp.md
Outdated
| The capacity is normalized such that a conversion value of 1 corresponds to the nominal capacity in the fields `input` and `output`. | ||
|
|
||
| Compared to a standard [`NetworkNode`](@extref EnergyModelsBase.NetworkNode), `BioCHP` differs in its outlet-flow constraints: | ||
| the produced heat does not have to be used (e.g., heat outputs are allowed to be zero), while electric output is enforced according to the given conversion factor. |
There was a problem hiding this comment.
I did a rework on this. Let me know what you think
docs/src/nodes/biochp.md
Outdated
| This is similar to the approach utilized in `EnergyModelsBase`. | ||
|
|
||
| - **`cap::TimeProfile`**:\ | ||
| Specifies the installed capacity, that is the heat the heat pump can deliver.\ |
There was a problem hiding this comment.
That is not entirely correct. It is for the standard node not defined in heat as the conversion factors may impact the system. I extended the description.
docs/src/nodes/biochp.md
Outdated
|
|
||
| - **`output::Dict{<:Resource, <:Real}`**:\ | ||
| The field `output` includes the output [`Resource`](@extref EnergyModelsBase.Resource)s with their corresponding conversion factors as dictionaries. | ||
| It is also possible to include other resources which are produced with a given correlation with the heat.\ |
docs/src/how-to/utilize.md
Outdated
|
|
||
| The nodes [`WindPower`](@ref WindPower), [`CSPandPV`](@ref CSPandPV) and [`MultipleBuildingTypes`](@ref MultipleBuildingTypes) have [constructors](@ref lib-pub-sampling_constructors) that samples [`wind_power_timeseries`](https://gitlab.sintef.no/harald.svendsen/wind_power_timeseries), [`Tecnalia_Solar-Energy-Model`](https://github.com/iDesignRES/Tecnalia_Solar-Energy-Model) and [`Tecnalia_Building-Stock-Energy-Model`](https://github.com/iDesignRES/Tecnalia_Building-Stock-Energy-Model), respectively. These modules are python based and the usage of these [constructors](@ref lib-pub-sampling_constructors) requires installation of these as documented [below](@ref how_to-utilize-use_nodes-python_modules). | ||
|
|
||
| Additionally, the node [`BioCHP`](@ref BioCHP) have a [constructor](@ref lib-pub-sampling_constructors) that samples the [CHP_modelling](https://github.com/iDesignRES/CHP_modelling) module. This module is `C++` based and the [constructor](@ref lib-pub-sampling_constructors) then requires compilation and build before usage as described further [below](@ref how_to-utilize-use_nodes-cpp_modules). |
docs/src/how-to/utilize.md
Outdated
| git clone --recurse-submodules git@github.com:EnergyModelsX/EnergyModelsLanguageInterfaces.jl.git | ||
| ``` | ||
|
|
||
| You should now be enabled to enter the main folder in which the other modules are located (under the submodules folder) |
docs/src/how-to/utilize.md
Outdated
|
|
||
| ### [Test modules](@id how_to-utilize-use_nodes-test) | ||
|
|
||
| All the mentioned [constructors](@ref lib-pub-sampling_constructors) have been included in the tests of the repository and you may therefore check if everyting is properly setup by running these in julia. |
| The [`MultipleBuildingTypes`](@ref) node creates sinks for all demand resources with penalties for both surplus and deficit. | ||
| The implementation uses `Dict` structures for the fields `cap`, `penalty_surplus`, and `penalty_deficit` to facilitate multiple [Resource](@extref EnergyModelsBase.Resource)s. | ||
| This approach allows modeling building demands with flexible penalty mechanisms for over- and under-supply. | ||
| The type is also used to enable specialized constructors that samples the [`Tecnalia_Building-Stock-Energy-Model`](https://github.com/iDesignRES/Tecnalia_Building-Stock-Energy-Model) module. |
There was a problem hiding this comment.
It is in practice a combined PV+CSP system if the constructor for the model from Tecnalia is used. I updated the documentation.
Based on the output of the Tecnalia_Building-Stock-Energy-Model the 1e6 scaling is removed and test updated accordingly. The submodules SHA are also updated. Also, added documentation for the nodes and a
how-tosection for the sampling constructors of these nodes.